#ifndef GEN_H
#define GEN_H

#define DRIVER_NAME	L"procmon"
#define DEVICE_NAME L"\\Device\\procmon"
#define LINK_NAME   L"\\DosDevices\\procmonLink"
#define EVENT_NAME  L"\\BaseNamedObjects\\procmonEvent"

typedef struct _CALLBACK_INFO
{
    HANDLE  hParentId;
    HANDLE  hProcessId;
    BOOLEAN bCreate;
}CALLBACK_INFO, *PCALLBACK_INFO;

#define IOCTL_CPNDRIVER_GET_PROCESSINFO	CTL_CODE(FILE_DEVICE_UNKNOWN,0x0800,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
#define IOCTL_CPNDRIVER_CREATE_EVENT	CTL_CODE(FILE_DEVICE_UNKNOWN,0x0801,METHOD_NEITHER,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
#define IOCTL_REFERENCE_EVENT			CTL_CODE(FILE_DEVICE_UNKNOWN,0x0802,METHOD_NEITHER,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
#define IOCTL_DEREFERENCE_EVENT			CTL_CODE(FILE_DEVICE_UNKNOWN,0x0803,METHOD_NEITHER,FILE_READ_ACCESS|FILE_WRITE_ACCESS)

#endif